package com.firebird.app.fekpsl.mvp.exam

import com.firebird.app.fekpsl.base.IModel
import com.firebird.app.fekpsl.base.IPresenter
import com.firebird.app.fekpsl.base.IView
import com.firebird.app.fekpsl.bean.BlankFillingQuestion
import com.firebird.app.fekpsl.bean.HttpResult
import com.firebird.app.fekpsl.bean.MultipleAnswer
import com.firebird.app.fekpsl.bean.SingleAnswer
import com.firebird.app.fekpsl.bean.TrueFalseQuestion
import io.reactivex.Observable
/**
 * Created by firebird on 2018/4/21.
 */
interface ExamContract {

    interface View : IView {
        fun showSingleAnswerList(SingleAnswerList: List<SingleAnswer>)
        fun showMultipleAnswerList(MultipleAnswerList: List<MultipleAnswer>)
        fun showTrueFalseQuestionList(TrueFalseQuestionList: List<TrueFalseQuestion>)
        fun showBlankFillingQuestionList(BlankFillingQuestionList: List<BlankFillingQuestion>)
    }

    interface Presenter : IPresenter<View> {
        fun getSingleAnswerList(subjectId: Int)
        fun getMultipleAnswerList(subjectId: Int)
        fun getTrueFalseQuestionList(subjectId: Int)
        fun getBlankFillingQuestionList(subjectId: Int)
    }

    interface Model : IModel {
        fun getSingleAnswerList(subjectId: Int): Observable<HttpResult<List<SingleAnswer>>>
        fun getMultipleAnswerList(subjectId: Int): Observable<HttpResult<List<MultipleAnswer>>>
        fun getTrueFalseQuestionList(subjectId: Int): Observable<HttpResult<List<TrueFalseQuestion>>>
        fun getBlankFillingQuestionList(subjectId: Int): Observable<HttpResult<List<BlankFillingQuestion>>>
    }
}